package com.dong.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Arrays;
import java.util.Objects;
import java.util.Optional;

/**
 * <p>
 * 等级枚举
 * </p>
 *
 * @author: dong
 * @Date: 15:15 2021/8/21
 */
@AllArgsConstructor
public enum LevelEnum {

    /**
     * 低
     */
    low("0", "低"),

    /**
     * 中
     */
    middle("1", "中"),

    /**
     * 高
     */
    high("2", "高"),;

    @Getter
    private final String code;

    @Getter
    private final String name;

    /**
     * 根据type 获取enum
     */
    public static LevelEnum getLevelEnum(String type) {
        return Arrays.stream(LevelEnum.values()).filter(e -> Objects.equals(type, e.getCode())).findFirst().orElse(null);
    }

    /**
     * 根据type 获取name
     */
    public static String getName(String type) {
        return Optional.ofNullable(LevelEnum.getLevelEnum(type)).map(LevelEnum::getName).orElse(null);
    }

}
